import { existsSync } from "fs"
import { Position, Location, Uri } from "vscode"
/**
 * 项目package.json文件中ctrl+左键，可以跳转到node_modules中相对应包的package.json中
 * @param fileName 当前文件完整路径
 * @param workDir 当前文件所在目录
 * @param word 当前光标所在单词(npm包名)
 * @returns 存在则node_modules中相对应包的package.json位置，否则返回undefined
 */
export function toNodeModule(fileName: string, workDir: string, word: string) {
  // 当前处于package.json文件中
  if (/package\.json$/.test(fileName)) {
    // 根据npm包名拼接出相应node_modules路径
    let nodeModulePath = `${workDir}\\node_modules\\${word
      .replace(/"/g, "")
      .replace(/\//g, "\\")}\\package.json`
    // 如果存在该npm包则返回该包位置
    if (existsSync(nodeModulePath))
      // new Position(0, 0) 表示位置为第一行第一列
      return new Location(Uri.file(nodeModulePath), new Position(0, 0))
    return
  }
}
